<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>常见面试题</title>
  <style>
    h3 {
      margin-bottom: 4px;
    }
    p {
      margin: 0;
    }
  </style>
</head>
<body>
  <h3>1、call()与apply()的区别？</h3>
  <p>实际上，call和apply的功能是一样的，知识传入的参数类别形式不同，apply传入的是数组</p>

  <h3>什么是事件代理/事件委托？</h3>
  <p>事件代理/事件委托是利用事件冒泡的特性，将本应该绑定在多个元素上的事件绑定在他们的祖先元素上，尤其在动态添加子元素的时候，可以非常方便的提高程序性能，减少内存控件。</p>

  <h3>什么是事件冒泡？什么是事件捕获？</h3>
  <p>冒泡型事件：事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。</p>
  <p>捕获型事件：事件从最不精确的对象(document对象)开始触发，然后到最精确(也可以是窗口级别捕获事件，不过必须由开发人员特别指定)。</p>
  <p>支持W3C标准的浏览器在添加事件时用addEventListener(event, fun, useCapture)方法，其中第3个参数useCapture是一个Boolean值，用来设置事件是在事件捕获时执行，还是事件冒泡时执行的，也就是在useCapture等于false的时候执行，所以把在处理事件时把useCapture设置为false是比较安全，也实现兼容浏览器的效果。</p>

  <h3>什么是 “use strict” 使用它的好处和坏处分别是什么？</h3>
  <p>在代码中出现表达式 "use strict"；意味着代码按照“严格模式”解析，这种模式使得Javascript在更严格的条件下运行</p>
  <p>好处：</p>
  <p>1、消除Javascript语法的一些不合理，不严谨之处，减少一些怪异行为；</p>
  <p>消除代码运行的一些不安全之处，保证代码运行的安全</p>
  <p>提高编译器效率，增加运行速度</p>
  <p>为未来新版本的Javascript做好铺垫</p>
  <p>坏处：</p>
  <p>同样的代码，在严格模式中，可能会有不一样的运行结果</p>
  <p>一些在“正常模式”下可以运行的语句，在“严格模式”下将不能运行</p>



</body>
</html>